<?php

namespace app\admin\controller;

use think\Request;
use app\common\model\Goodlink as GoodlinkModel;

class Goodlink extends Common
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $datas = GoodlinkModel::paginate(10);
        return view('', compact('datas'));
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
        return view();
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $data = $request->post();
        //上传文件处理
        $file = request()->file('weblogo');
        // 移动到框架应用根目录/public/uploads/ 目录下
        if ($file) {
            $info = $file->validate(['ext' => 'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads');
            if ($info) {
                // 成功上传后 获取上传信息
                $filePath = '/uploads/' . $info->getSaveName();
                $data['weblogo'] = $filePath;
            } else {
                // 上传失败获取错误信息
                $this->error($file->getError());
            }
        }
        //添加数据  进行验证
        $GoodlinkM = new GoodlinkModel;
        $result = $GoodlinkM->validate(true)->save($data);
        if (false === $result) {
            // 验证失败 输出错误信息
            $this->error($GoodlinkM->getError());
        } else {
            $this->success('添加成功', '/admin/goodlink');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        $data = GoodlinkModel::find($id);
        return view('', compact('data'));
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //表单数据
        $data = $request->post();
        unset($data['_method']);
        //验证数据
        $result = $this->validate($data, 'Goodlink.edit');
        if (true !== $result) {
            // 验证失败 输出错误信息
            $this->error($result);
        }

        //上传文件处理
        $file = request()->file('weblogo');
        // 移动到框架应用根目录/public/uploads/ 目录下
        if ($file) {
            $info = $file->validate(['ext' => 'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads');
            if ($info) {
                // 成功上传后 获取上传信息
                $filePath = '/uploads/' . $info->getSaveName();
                $data['weblogo'] = $filePath;
            } else {
                // 上传失败获取错误信息
                $this->error($file->getError());
                exit();
            }
        }

        //添加数据库
        $res = GoodlinkModel::where('wid', $id)->update($data);
        if ($res) {
            $this->success('编辑成功', '/admin/goodlink');
        } else {
            $this->error('编辑失败');
        }

    }

    /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $GoodlinkData = GoodlinkModel::get($id);
        //删除上传文件
        @unlink($GoodlinkData['weblogo']);
        //删除数据
        if ($GoodlinkData->where('wid', $id)->delete()) {
            $res['status'] = '1';
            $res['msg'] = '删除成功';
        } else {
            $res['status'] = '0';
            $res['msg'] = '删除失败';
        }
        return $res;
    }
}
